#ifndef __util_H__
#define __util_H__

/*
封装了一些实用性函数
*/

#include <unistd.h>
#include <pthread.h>
#include <sys/types.h>
#include <sys/syscall.h>
#include <stdio.h>
#include <iostream>
#include <vector>
#include <string>

namespace framework
{
    //获取当前线程id
    pid_t GetThreadId();

    //获取协程id
    uint32_t GetFiberId();

    //获取当前的调用栈
    //bt 保存调用栈
    //size 最多返回层数
    //skip 跳过栈顶的层数
    void Backtrace(std::vector<std::string>& bt, int size = 64, int skip = 1);

    //获取当前栈信息的字符串
    //size 栈的最大层数
    //skip 跳过栈顶的层数
    //prefix 栈信息前输出的内容
    std::string BacktraceToString(int size = 64, int skep = 2, const std::string& prefix = "");


    //获取当前时间的毫秒
    uint64_t GetCurrentMS();
    //获取当前时间的微秒
    uint64_t GetCurrentUS();
}




#endif
